Computer software applications running on many types of computing systems—for example, a personal computer, a “smartphone,” and any other type of device with a memory storing program instructions and a processor for executing those instructions—typically rely on graphic user interfaces (GUI) to allow for user interaction with the application. A GUI allows users to interact with an executing application through graphical elements, such as icons, text, and other visual indicators that are displayed to the user and that correspond to user commands. Selection of a graphical element by a mouse, for example, causes one or more processes to be performed by the computer under direction software programs by calling one or more functions or, in the case programs written in an object oriented language, methods. These functions are responsive to the user command represented by the graphical element. A GUI may be contrasted with a command line interface or shell, which requires that a user type in a command as a line of text, the shell takes the command and translates it to one or more functions that the application is called upon to perform.
Many conventional software applications provide limited customization of tool bars that may give access to a variety of software commands. However, these applications are generally limited and do not includes customization at the user level of other elements of the GUI in other applications, such as a database program, a user interface may be modified, but modification requires extensive knowledge of the underlying database program to make any changes. In database programs, changes to the interface may not generally be made on the fly by dragging and dropping fields by an individual user but generally require a developer or programmer. As such, user configurable user interfaces are presented herein.